[포스코x코딩온] 웹 풀스택 과정 7기 8주차 목요일 회고
목차
기다리고 기다리던 배포의 시간
드디어 프로젝트를 배포할 시간이다.
FE는 기존에 사용했던 Netlify를 이용했지만, 이는 BE를 배포할 수 없다.
검색해서 찾아낸 결과 BE는 Cloudtype, DB는 Planet Scale 이라는 서비스를 이용하려고 했다.
두 서비스 모두 무료로 사용할 수 있었다.
왜 연결이 안 돼?
그러나 DB가 계속 연결이 안 되는 것이다.
SSL 연결이 필요하대서 인증서도 만들고 온갖 난리를 피웠는데도 연결이 되지 않았다.
그리고 5시간을 쌩으로 난리친 결과, 드디어 문제를 찾아냈다.
dialectOption
속성을 dialectOPtion
으로 오타를 낸 것이다.
하...
진짜 한숨 밖에 안 나왔다.
TS에다 any
속성 쓰는 건 범죄로 처벌해야 한다고 느꼈다.
외래키 설정
그래도 이제 배포를 할 수 있다는 희망을 가지고 마음을 가다듬어 다시 시도를 했다.
그런데 웬 걸, 또다시 오류가 났다.
외래키를 설정할 수 없다고 한다.
이게 무슨 소리인가 싶었는데 Planetscale 에 대해 알아보면서 슥 넘겨버린 포스트가 생각이 났다.
설마하고 다시 검색해 봤다.
Planet Scale 을 Prisma로 더 잘 사용하기 라는 글이었다.
Planet Scale 은 Vitess
라는 DB 솔루션을 사용하는데, 이는 외래키를 지원하지 않는다고 한다.
Prisma
라는 ORM을 사용하면 외래키를 지원한다고 하지만, 이를 바꿀 시간이 없었다.
하...
어쩔 수 없이 다른 DB 서비스를 찾아봤고 FreeDB 라는 서비스를 발견했다.
다시 연결을 하니 다행히 문제 없이 연결됐다.
config파일 세팅
이제 config파일을 세팅해야 했다.
기존에 작성한 코드는 config
파일에서 작성된 오브젝트를 import 하는 방식이었다.
config
파일을 Git에 올릴 수도 없고 어떻게 해야하나 싶었다.
고민 끝에 build
시에 환경변수를 config
파일에 작성하는 방식으로 해결했다.
또 config/token
파일을 생성할 때, 만약 환경변수에 Access
토큰과 Refresh
토큰이 없다면, 랜덤하게 생성하는 방식으로 만들어 보안을 강화했다.
내 컴에서는 되는데요?
이제 배포를 하면 된다고 생각했다.
그러나 배포를 하니, 정상적으로 작동하지 않았다.
알고 보니 내가 전역적으로 설치한 라이브러리가 있어 필요한 모든 라이브러리를 설치하지 않았던 것이다.
매번 배포하고 문제 생기면 다시 추가하고 하기에는 시간이 너무 오래 걸릴 것 같아서 어쩌나 싶었다.
뭔가 배보다 배꼽이 커지는 것 같아지는데
그 때, 예전에 설치해둔 가상 머신 프로그램 UTM 이 생각이 났다.
가상 머신에서 저장소를 받아 서버가 잘 열리면 배포하는데도 문제가 없을 터였다.
그래서 UTM
에 기존에 설치된 Ubuntu
서버를 실행했다.
실행만 해도 한 나절이 걸리는 듯 했다.
문제 없이 잘 실행은 됐지만, 이번에는 복붙이 안 되는 것이었다.
nvm 부터 설치하려면 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
라는 명령어를 쳐야하지만 너무 귀찮았다.
그래서 찾아보니 VSCode 확장 프로그램 중에 Remote - SSH 라는 프로그램이 있었다.
해당 프로그램을 설치하니 VSCode에서 원격으로 가상머신에 접속해서 복붙으로 손 쉽게 코드를 작성할 수 있게 되었다.
이후 리포지토리를 가져와 실행을 해보니 dependencies에 포함되지 않은 라이브러리가 조금 있었다.
해당 라이브러리들을 로컬로 설치하고 dependencies에 추가된 것을 확인하고 다시 배포를 했다.
그 결과...
성공적으로 배포되었다!
이후 내가 가진 도메인에 임시로 연결해 두었다.
그날의 하늘
프로젝트 회고
- git 관리 잘 하고 커밋, PR 메세지를 자세히 남깁시다. PM 너무 힘들어집니다. 🥲
- 코드는 제발 복붙하지 말고 git을 써서 공유합시다. 컨플릭트가 한 번에 열 몇 개씩 나요. 😱
- 타입 확인을 잘 하고
any
는 절대 쓰지 말아주세요. (5시간 날림) 😩 - Git Repositody 권한을 대충 관리하면 안 되겠다는 것을 배웠습니다. 😭
- 팀원 간의 포매터 설정 동기화는 되도록 빨리 합시다. 4자릿수 커밋 기록이 남아요. 😵
- Next.js 도 써보고 싶었는데 이미 팀원들이 많이들 어려워서 사용하지 못했습니다. React 배운 후에 하는 프로젝트에서는 꼭 써보겠습니다. 😊
- 보고와 커밋을 자주하고, 팀원들과 소통을 많이 하면서 프로젝트를 진행합시다. 🤝
- 팀 프로젝트는 남들한테 맞춰가면서 뭘 해야할지 보다는 뭘 하고 싶은지를 생각하고 실천하는 것이 좋다고 생각합니다. 😎
쓰고 나니 뭔가 팀원들한테 아쉬웠던 점만 적어둔 것 같다.
사실 내가 조금 무리하긴 했다.
아직 JS도 어려워 하는 사람이 반인 판에 TS까지 쓰라고 하니...
어려워 하시는 팀원들은 프론트 위주로 하시긴 했지만 그래도 많이 힘들어하신 것 같다.
~~아니근데솔직히TS는타입체크까지해줘서더편한데왜어려워하는거야???~~
라고 생각하면 너무 내 위주로만 생각하는 거겠지...
회고 때 다른 팀원들이 나 덕분에 많이 배웠다고 해줬다.
스스로도 내가 너무 깐깐하게 구는게 아닌가 싶을 정도로 빡세게 잡긴 했다.
그치만... 수천줄의 코드를 읽고 이해하며 Conflict로 고통 받는 PM 입장에서는 어쩔 수가 없었다...
그래도 팀원들이 많이 배웠다고 하니 다행이다.ㅎㅎ
사실 어제 팀원들 몰래 Next.js 를 적용해보려고 했는데 어제부터 몸 상태가 갑자기 나빠져서 불가능했다.
이번에는 어쩔 수 없었지만 다음 프로젝트에는
꼭
꼭!
꼭!!!
Next.js 를 쓸 것이다.
다음 팀 팀원들은 각오해야 할거다.ㅎㅎ
일단 이번 프로젝트 FE도 혼자 Next.js로 다시 만들어볼 생각이다.
잘 할 수 있겠지?